This invention relates to enterprise storage systems comprising a host computer attachable to a plurality of storage devices, more particularly this invention relates to a system and method for migrating data from a first disk storage subsystem to a second heterogeneous disk storage subsystem without interrupting access to the data and without requiring special hardware.
In a network enterprise computing system, a host computer runs application programs which access data stored on attached storage devices. The storage devices can be disk drives, tape drives or storage subsystems such as Redundant Array of Independent Disks (RAID) systems which comprises a plurality of disk drives. The host computer runs an operating system such as the UNIX based IBM AIX operating system. The hosts are attached to the storage devices through adapters and interfaces such as the Small Computer Storage Interface (SCSI) or FibreChannel Interface.
Depending on the compatibility provided by the host computer, there are a variety of storage subsystems from various vendors that can be attached to the host computer. An example of a storage subsystem is the IBM Enterprise Storage Server (ESS). The ESS subsystem stores a plurality of volumes of data which can be accessed by a host computer system. The ESS subsystem is a RAID system that also uses redundant connections and paths between the host server and disk storage devices to provide enhanced performance and data availability.
For optimal data availability, a host server computer system is configured with multiple host adapters with SCSI or Fibre Channel connections to an ESS system that in turn provides internal component redundancy.
The storage devices are physically attached to the host computers through adapter hardware. Host adapter driver software controls the host adapter hardware.
The IBM Subsystem Device Driver (SDD) software product behaves like a pseudo device driver and interfaces between the host file system and the host disk drivers. The SDD resides in the host server in communication with the native disk device driver for the computer system. The SDD software product coordinates directing data flow. For example, the SDD driver selects an alternate path in the event of a failure in a data path. The IBM Subsystem Device Driver is available on AIX, UNIX, HP, SUN Solaris, Microsoft Windows NT and Microsoft Windows 2000 hosts.
In an AIX host, for example, the SDD software resides above the AIX disk driver in the AIX protocol stack. The SDD defines virtual storage devices used by the system. Each SDD device represents a unique device the storage subsystem. In an AIX environment, the SDD devices behave like AIX hdisk devices. Most operations on a hdisk can be performed on the SDD device, including commands such as open, close and data transfer. Application program on the host system access data via the virtual volumes (e.g. an AIX operation system hdisk). The data volumes are physically stored on one or more physical disk storage devices of a subsystem. The physical storage of the data is controlled by the subsystem.
I/O requests sent to the SDD driver are passed to the AIX disk driver after path selection. When an active path experiences a failure, the SDD driver dynamically switches to another path. The SDD driver dynamically balances a load based on the workload of the adapter.
Before installing the Subsystem Device Driver, the ESS is configured for single port or multiple port access for each logical unit number. The subsystem device driver requires a minimum of two independent paths that share the same logical unit to use the load balancing and fail-over features. For Fibre Channel support, the AIX host system preferably runs on an IBM RS6000 computer.
The host computer runs a device configuration manager which, at the time the system is started up, queries all of the attached storage devices (e.g. subsystems) to identify the location and quantity of data storage available for the system. Within the provided operating system, a file management system tracks the location of all stored files in the identified storage devices.
It is currently possible to perform a data migration operation from one storage device to another by taking an application program out of service, copying the data and then bringing the application back on-line with the new device. If the amount of data is large this can result in a lengthy application outage. There is a need to facilitate the transferring of data from one device to another while application programs are accessing the data being moved. Therefore, it is desirable to migrate disk resident data from one storage device to another without requiring that the application using the data on the storage device be taken out of service.
Computer systems have been known to incorporate background copying where the application programs can access the data while the data is being copied. Examples of data migration systems that allow background copying are the IBM Peer-to-Peer Remote Copy (PPRC) and Flashcopy products. These products serve to meet certain data copying needs. However, the data copying is performed using special hardware provided in the storage subsystem.
Another example of a background copying system is described in U.S. Pat. No. 5,680,640. However, that system requires specialized hardware in a specific type of storage subsystem to perform the data migration. Both the source and target subsystems must be the same device type and storage capacity and the system is limited to one type of attachment, the ESCON system.
It is desirable to be able to perform data migration without requiring any hardware-specific additions to a storage system or an enterprise system. Therefore, it is desirable to have a software program that will accomplish the on-line copying of data. It is also desirable that the capability of the on-line copying of data be available in the SCSI and Fibre Channel environments. Additionally, it is also desirable to provide a system where the source and target storage subsystems are from different vendors.
It is an object of the preferred embodiment of the invention to provide a system and method for migrating disk-resident data from one disk device to another of equal or greater capacity without requiring that the application program using the disk device be taken out of service.
It is a further object of the preferred embodiment of the invention to migrate data from one disk subsystem to another subsystem manufactured by a different vendor.
It is a further object of the preferred embodiment of the invention to migrate disk-resident data from one subsystem to another without requiring special hardware wherein a host application program controls the migrating of the data between whatever subsystem is used.
In a computer system having a memory, processor and a plurality of attached heterogeneous disk storage subsystems, a system is provided for managing the disk storage subsystems comprising means for copying a volume of data from a first disk storage subsystem from a first vendor to a second disk storage subsystem from a different vendor from the first wherein the second disk storage subsystem is of equal or greater capacity than the first storage subsystem. Means are also provided for enabling an application program to access data on the first disk storage subsystem while data is being copied to the second disk storage subsystem. Means are further provided for identifying within the computer system the copied volume on the second disk storage subsystem as the volume on the first disk storage subsystem after all the data is copied. Means are further provided for indicating how much data has been copied from the volume on the first disk storage subsystem to the second disk storage subsystem and for writing updated data to both the first and second disk storage subsystems when the data being updated has already been copied to the second disk storage subsystem. Means are further provided for uniquely identifying all the volumes on the attached disk storage subsystems and means are provided for maintaining the unique identity of the volume on the first disk storage subsystem until all of the data has been copied to the second disk storage device.
In a further preferred embodiment, a method is provided for copying a volume of data from a first storage device to a second storage device attached to a host system, having a processor and memory, while allowing application programs, running on the host system, to access the data on the first storage device, wherein each volume on the storage device has a unique identifier. The method comprises the steps of issuing a request to the first storage device to copy each sector of data currently stored in the volume to be copied in the first storage device to the second storage device. Each sector of data is written into a buffer in the host computer. Each sector of data is then written from the buffer in the host computer to the second storage device. A copy counter is updated after a sector has been successfully copied. When all of the data in the volume to be copied in the first storage device is successfully copied to the second storage device, the volume in the second storage device is uniquely identified as being the volume in the first storage device, and the first identifier for the copied volume in the first storage device is modified so as to no longer be uniquely identified as such.
In a preferred embodiment, all I/O requests are intercepted for the first storage device. When writing updated data to the first storage device, a determination is made whether the sector of data to be updated has been copied to the second storage device as indicated by a counter. When the sector of data to be updated has been copied to the second storage device, the updated data is written to both the first storage device and the second storage device. Also, preferably, metadata is provided in a designated sector of the volume in the first storage device to uniquely identify the volume in the first storage device. That sector containing the metadata is only copied to the second storage device after all the other data in the volume has been copied from the first storage device. In a further preferred embodiment, the first and second storage devices are from different manufacturers.
In a further preferred embodiment, an article of manufacture is provided for use in managing a plurality of heterogeneous disk storage devices attached to a computer system having a processor and a memory. The article of manufacturer has computer program code embedded in a medium which causes the computer system to perform the steps for managing the attached disk storage devices. The system copies a volume of data from a first disk storage device from a first manufacturer to a second storage device from a different manufacturer of equal or larger capacity. An application program running on the system is still able to access data stored on the first disk storage device while the data is being copied. The volume on the second disk storage device is identified within the computer system as the volume on the first disk storage device after all the data has been copied.